<?php
/*
 * php中的数组
 *
 * js=[a,b,c,d]     js[0]=a  js[2]=c
 *
 * php1=[11,22,33,44]   php1[0]=11  php1[3]=44
 *
 * php2=[3=>11,6=>22]  php2[3]=11
 * php3=['a'=>11,'b'=>22,'人'='人之初']   php3['人']=人之初
 *
 */

// 创建数组
$arr1=array(11,22,33);
echo 'arr1的第二个元素：'.$arr1[1];
$arr2=array('a'=>'abc','b'=>'bcd');
echo '<br>';
echo 'arr2的第以个元素：'.$arr2['a'];
$arr3=[11,22,33,44,'abcd'];
echo '<br>';
var_dump($arr3);
$arr4=['name'=>'张三','sex'=>'女','age'=>22];
echo '<br>';
var_dump($arr4);

//4、创建数组存储宿舍成员的年龄，然后依次输出
$arr5=[22,19,21,19,22];
echo '<br>';
echo 'arr5的第一个元素：'.$arr5[0];
//5、创建数组存储宿舍成员的姓名和年龄，然后依次输出
$arr6=['张三'=>22,'李四'=>18];
echo '<br>';
echo '张三的年龄：'.$arr6['张三'];
echo '<br>';

### 6.2、数组常用方法

//count()   返回数组中元素的数量  sizeof() 函数是 count() 函数的别名
$arr7=['name'=>'张三','sex'=>'女','age'=>22]; // 键值对（key-value）
echo 'arr7的长度是：'.count($arr7);
echo '<br>';
//join()  数组转字符串
$arr8=[128,256,512,1024];
echo 'arr8转为字符串后：'.join($arr8,',');
echo '<br>';
echo 'arr7转为字符串后：'.join($arr7,','); // 转为字符串后，下标不存；不会把下标转字符串
echo '<br>';
//explode()  字符串转数组
$str='128,256,512,1024';
$arr9=explode(',',$str); // php中字符串转数组必须指定分隔符
echo 'str转为数组后：';
var_dump($arr9);
echo '<br>';
//array_key_first()  返回数组的第一个元素的键(下标)(key)
$arr10=['name'=>'张三','sex'=>'女','age'=>22]; // 键值对（key-value）
$arr11=[128,256,512,1024];
echo ' 获取arr10的第一个元素的下标（键）:'.array_key_first($arr10); // 此方法大部分是用在自定义下标的数组里
echo '<br>';
echo ' 获取arr11的第一个元素的下标（键）:'.array_key_first($arr11);
echo '<br>';
//array_key_last()  返回数组的最后一个元素的键
echo ' 获取arr10的最后一个元素的下标（键）:'.array_key_last($arr10); // 此方法大部分是用在自定义下标的数组里
echo '<br>';
echo ' 获取arr11的最后一个元素的下标（键）:'.array_key_last($arr11);
echo '<br>';

//array_shift()   删除数组中的第一个元素，并返回被删除的元素
$arr12=['name'=>'张三','sex'=>'女','age'=>22];
array_shift($arr12);
echo '删除后的数组：';
var_dump($arr12);
//array_pop()  删除数组中的最后一个元素
array_pop($arr12);
echo '<br>';
echo '删除后的数组：';
var_dump($arr12);
echo '<br>';
//array_unshift()   向数组插入新元素。新数组的值将被插入到数组的开头
$arr13=['name'=>'张三','sex'=>'女','age'=>22]; // 键值对（key-value）
$arr14=[128,256,512,1024];
array_unshift($arr14,'2');
var_dump($arr14);
echo '<br>';
array_unshift($arr13,'2');
var_dump($arr13);
echo '<br>';
//array_push()   向数组尾部插入一个或多个元素
echo '向数组尾部插入一个元素：<br>';
array_push($arr14,1024*1024);
var_dump($arr14);
echo '<br>';
array_push($arr13,1024*1024);
var_dump($arr13);
echo '<br>';

/*
 * array_unshift() 、array_push()  这两个方法一般用在默认下标的数组上
 */
echo  '指定下标的数组插入新元素<br>';
$arr15=['name'=>'张三','sex'=>'女','age'=>22];
$arr15['tel']='15812345678';
var_dump($arr15);
echo '<br>';

$arr16=[3=>12,7=>22,55=>10];
echo 'arr16[0]的值:'.$arr16[7];



// 编译异常  运行异常

echo '<br>';
$a=0;
$b=5;
echo $b/$a;